package com.lsh.oms.api.model.order;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 签收单头DTO
 * Created by huangdong on 16/8/1.
 */
public class OrderReceiptHeadDTO implements Serializable {

    private static final long serialVersionUID = 6645104881690440414L;

    /**
     * ID
     */
    private Long id;

    /**
     * 签收单号
     */
    private Long roCode;

    /**
     * 发货单号
     */
    private Long doCode;

    /**
     * 订单号
     */
    private Long orderCode;

    /**
     * 返仓单状态
     */
    private Integer roStatus;

    /**
     * 客户编码
     */
    private Long customerCode;

    /**
     * 收货地址编码
     */
    private Long addressCode;

    /**
     * 区域编码
     */
    private Integer regionCode;

    /**
     * 省
     */
    private Integer province;

    /**
     * 市
     */
    private Integer city;

    /**
     * 区
     */
    private Integer district;

    /**
     * 片区
     */
    private Integer area;

    /**
     * 仓库编码
     */
    private String warehouseCode;

    /**
     * 仓库名称
     */
    private String warehouseName;

    /**
     * 收货人信息
     */
    private String consigneeInfo;

    /**
     * 商品总数量
     */
    private BigDecimal goodsTotalQuantity;

    /**
     * 商品总金额
     */
    private BigDecimal goodsTotalAmount;

    /**
     * 商品优惠金额
     */
    private BigDecimal goodsDiscountAmout;

    /**
     * 订单折扣率
     */
    private BigDecimal orderDiscountRate;

    /**
     * 订单优惠金额
     */
    private BigDecimal orderDiscountAmout;

    /**
     * 优惠券总金额
     */
    private BigDecimal ticketCouponAmout;

    /**
     * 现金券总金额
     */
    private BigDecimal cashCouponAmount;

    /**
     * 运费
     */
    private BigDecimal freight;

    /**
     * 抹零金额
     */
    private BigDecimal floorAmount;

    /**
     * 支付类型（1-货到付款，2-在线支付）
     */
    private Integer payType;

    /**
     * 支付状态（0：未支付，1-已支付）
     */
    private Integer payStatus;

    /**
     * 支付减免金额
     */
    private BigDecimal payReliefAmout;

    /**
     * 应付金额
     */
    private BigDecimal expectPayAmount;

    /**
     * 实付金额
     */
    private BigDecimal actualPayAmount;

    /**
     * 签收时间
     */
    private Integer receiptTime;

    /**
     * 仓储类型
     */
    private Integer storageType;

    /**
     * 创建时间
     */
    private Integer createTime;

    /**
     * 更新时间
     */
    private Integer updateTime;

    /**
     * 是否有效（0:无效；1:有效）
     */
    private Integer valid;

    private List<OrderReceiptDetailDTO> details;

    /**
     * 确认时间
     */
    private Integer confirmAt;

    public Integer getConfirmAt() {
        return confirmAt;
    }

    public void setConfirmAt(Integer confirmAt) {
        this.confirmAt = confirmAt;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getRoCode() {
        return roCode;
    }

    public void setRoCode(Long roCode) {
        this.roCode = roCode;
    }

    public Long getDoCode() {
        return doCode;
    }

    public void setDoCode(Long doCode) {
        this.doCode = doCode;
    }

    public Long getOrderCode() {
        return orderCode;
    }

    public void setOrderCode(Long orderCode) {
        this.orderCode = orderCode;
    }

    public Integer getRoStatus() {
        return roStatus;
    }

    public void setRoStatus(Integer roStatus) {
        this.roStatus = roStatus;
    }

    public Long getCustomerCode() {
        return customerCode;
    }

    public void setCustomerCode(Long customerCode) {
        this.customerCode = customerCode;
    }

    public Long getAddressCode() {
        return addressCode;
    }

    public void setAddressCode(Long addressCode) {
        this.addressCode = addressCode;
    }

    public Integer getRegionCode() {
        return regionCode;
    }

    public void setRegionCode(Integer regionCode) {
        this.regionCode = regionCode;
    }

    public Integer getProvince() {
        return province;
    }

    public void setProvince(Integer province) {
        this.province = province;
    }

    public Integer getCity() {
        return city;
    }

    public void setCity(Integer city) {
        this.city = city;
    }

    public Integer getDistrict() {
        return district;
    }

    public void setDistrict(Integer district) {
        this.district = district;
    }

    public Integer getArea() {
        return area;
    }

    public void setArea(Integer area) {
        this.area = area;
    }

    public String getWarehouseCode() {
        return warehouseCode;
    }

    public void setWarehouseCode(String warehouseCode) {
        this.warehouseCode = warehouseCode;
    }

    public String getWarehouseName() {
        return warehouseName;
    }

    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
    }

    public String getConsigneeInfo() {
        return consigneeInfo;
    }

    public void setConsigneeInfo(String consigneeInfo) {
        this.consigneeInfo = consigneeInfo;
    }

    public BigDecimal getGoodsTotalQuantity() {
        return goodsTotalQuantity;
    }

    public void setGoodsTotalQuantity(BigDecimal goodsTotalQuantity) {
        this.goodsTotalQuantity = goodsTotalQuantity;
    }

    public BigDecimal getGoodsTotalAmount() {
        return goodsTotalAmount;
    }

    public void setGoodsTotalAmount(BigDecimal goodsTotalAmount) {
        this.goodsTotalAmount = goodsTotalAmount;
    }

    public BigDecimal getGoodsDiscountAmout() {
        return goodsDiscountAmout;
    }

    public void setGoodsDiscountAmout(BigDecimal goodsDiscountAmout) {
        this.goodsDiscountAmout = goodsDiscountAmout;
    }

    public BigDecimal getOrderDiscountRate() {
        return orderDiscountRate;
    }

    public void setOrderDiscountRate(BigDecimal orderDiscountRate) {
        this.orderDiscountRate = orderDiscountRate;
    }

    public BigDecimal getOrderDiscountAmout() {
        return orderDiscountAmout;
    }

    public void setOrderDiscountAmout(BigDecimal orderDiscountAmout) {
        this.orderDiscountAmout = orderDiscountAmout;
    }

    public BigDecimal getTicketCouponAmout() {
        return ticketCouponAmout;
    }

    public void setTicketCouponAmout(BigDecimal ticketCouponAmout) {
        this.ticketCouponAmout = ticketCouponAmout;
    }

    public BigDecimal getCashCouponAmount() {
        return cashCouponAmount;
    }

    public void setCashCouponAmount(BigDecimal cashCouponAmount) {
        this.cashCouponAmount = cashCouponAmount;
    }

    public BigDecimal getFreight() {
        return freight;
    }

    public void setFreight(BigDecimal freight) {
        this.freight = freight;
    }

    public BigDecimal getFloorAmount() {
        return floorAmount;
    }

    public void setFloorAmount(BigDecimal floorAmount) {
        this.floorAmount = floorAmount;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    public Integer getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    public BigDecimal getPayReliefAmout() {
        return payReliefAmout;
    }

    public void setPayReliefAmout(BigDecimal payReliefAmout) {
        this.payReliefAmout = payReliefAmout;
    }

    public BigDecimal getExpectPayAmount() {
        return expectPayAmount;
    }

    public void setExpectPayAmount(BigDecimal expectPayAmount) {
        this.expectPayAmount = expectPayAmount;
    }

    public BigDecimal getActualPayAmount() {
        return actualPayAmount;
    }

    public void setActualPayAmount(BigDecimal actualPayAmount) {
        this.actualPayAmount = actualPayAmount;
    }

    public Integer getReceiptTime() {
        return receiptTime;
    }

    public void setReceiptTime(Integer receiptTime) {
        this.receiptTime = receiptTime;
    }

    public Integer getStorageType() {
        return storageType;
    }

    public void setStorageType(Integer storageType) {
        this.storageType = storageType;
    }

    public Integer getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Integer createTime) {
        this.createTime = createTime;
    }

    public Integer getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Integer updateTime) {
        this.updateTime = updateTime;
    }

    public Integer getValid() {
        return valid;
    }

    public void setValid(Integer valid) {
        this.valid = valid;
    }

    public List<OrderReceiptDetailDTO> getDetails() {
        return details;
    }

    public void setDetails(List<OrderReceiptDetailDTO> details) {
        this.details = details;
    }

    @Override
    public String toString() {
        return "OrderReceiptHeadDTO [id=" + id + ", roCode=" + roCode
                + ", doCode=" + doCode + ", orderCode=" + orderCode
                + ", roStatus=" + roStatus + ", customerCode=" + customerCode
                + ", addressCode=" + addressCode + ", regionCode=" + regionCode
                + ", province=" + province + ", city=" + city + ", district="
                + district + ", area=" + area + ", warehouseCode="
                + warehouseCode + ", warehouseName=" + warehouseName
                + ", consigneeInfo=" + consigneeInfo + ", goodsTotalQuantity="
                + goodsTotalQuantity + ", goodsTotalAmount=" + goodsTotalAmount
                + ", goodsDiscountAmout=" + goodsDiscountAmout
                + ", orderDiscountRate=" + orderDiscountRate
                + ", orderDiscountAmout=" + orderDiscountAmout
                + ", ticketCouponAmout=" + ticketCouponAmout
                + ", cashCouponAmount=" + cashCouponAmount + ", freight="
                + freight + ", floorAmount=" + floorAmount + ", payType="
                + payType + ", payStatus=" + payStatus + ", payReliefAmout="
                + payReliefAmout + ", expectPayAmount=" + expectPayAmount
                + ", actualPayAmount=" + actualPayAmount + ", receiptTime="
                + receiptTime + ", storageType=" + storageType
                + ", createTime=" + createTime + ", updateTime=" + updateTime
                + ", valid=" + valid + ", details=" + details + ", confirmAt" + confirmAt + "]";
    }


}
